package Internet.Program.TCP;

import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

/**
 * @Author: Jason
 * @ClassName: TCPClientDemo01
 * @Description: 客户端
 * @Package：Internet.Program
 * @Project：javaDemo
 * @name：TCPClientDemo01
 * @Filename：TCPClientDemo01
 **/

public class TCPClientDemo01 {
    //文字传输
//    public static void main(String[] args) {
//        Socket socket = null;
//        OutputStream os = null;
//        try {
//            //1、要知道服务器地址
//            InetAddress serverIP = InetAddress.getByName("127.0.0.1");
//            //2、端口号
//            int port = 9999;
//            //3、创建一个socket连接
//            socket = new Socket(serverIP,port);
//            //发送消息 IO流
//            os = socket.getOutputStream();
//            os.write("你好".getBytes());
//        } catch (Exception e) {
//            e.printStackTrace();
//        }finally {
//            if (os!=null){
//                try {
//                    os.close();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }
//            if (socket!=null){
//                try {
//                    socket.close();
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            }
//        }
//    }

    //上传文件
    public static void main(String[] args) throws Exception {
        //1、创建一个socket连接
        Socket socket = new Socket(InetAddress.getByName("127.0.0.1"),9999);
        //2、创建一个输出流
        OutputStream outputStream = socket.getOutputStream();
        //3、文件流
        FileInputStream fileInputStream = new FileInputStream(new File("2.jpeg"));
        //4、写出文件
        byte[] bytes = new byte[1024];
        int len;
        while ((len=fileInputStream.read(bytes))!=-1){
            outputStream.write(bytes,0,len);
        }

        //通知服务器已经传输完了


        //确定服务器接受完毕，才能够断开连接

        //5、关闭资源
        fileInputStream.close();
        outputStream.close();
        socket.close();
    }


}
